package com.wgy.day25.Collections集合工具类;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Demo03CollectionsSort {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        list01.add(1);
        list01.add(3);
        list01.add(2);
        System.out.println(list01); //[1, 3, 2]
        Collections.sort(list01, new Comparator<Integer>() {
            //重写比较规则
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;//升序
               // return o2 - o1;//降序
            }
        });
        System.out.println(list01);//  降序[3, 2, 1]  //  升序 [1, 2, 3]

        ArrayList<Student> list02 = new ArrayList<>();
        list02.add(new Student("迪丽热巴",18));
        list02.add(new Student("古力娜扎",17));
        list02.add(new Student("杨幂",20));
        list02.add(new Student("赵丽颖",20));
        list02.add(new Student("杨颖",20));

        System.out.println(list02);
     //  [Student{name='迪丽热巴', age=18}, Student{name='古力娜扎', age=17}, Student{name='杨幂', age=20}, Student{name='赵丽颖', age=20}, Student{name='杨颖', age=20}]

        Collections.sort(list02, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //按照年龄升序排序
                int result=o1.getAge()-o2.getAge();
                // 按照年龄降序排序
               // return o2.getAge()-o1.getAge();

                //如果两人的年龄相同,再使用姓名的第一个字比较
                if(result == 0){
                    result=o1.getName().charAt(0)-o2.getName().charAt(0);
                }
                return result;
            }
        });
        System.out.println(list02);
        //[Student{name='古力娜扎', age=17}, Student{name='迪丽热巴', age=18}, Student{name='杨幂', age=20}, Student{name='杨颖', age=20}, Student{name='赵丽颖', age=20}]
    }
}
